translateTFtoNaturalEnglish = function (tweetflow) {
	
	var words = [];
	
	translateSF = function(){
    	
    	// @User, I did operation the service [which yielded: output]
    	
    	words.push(tweetflow.user+","); // use ',' as single word?
    	
    	words.push("I");
    		
    	if(tweetflow.type=LG && tweetflow.verb){
    		
    		var i=LgVerbs.indexOf(tweetflow.verb);
    		if(i>=0){
    			words.push(LgVerbsPast[i]); //conjungate known verb
    		}else{
    			words.push(tweetflow.verb+"ed"); // not always correct but defensive if dictionary miss
    		}
    		
    		words.push(tweetflow.didOperation.toLowerCase()+"ing"); // use geround ing "I canceled adding..."
    		
    	}else{
    		words.push("did"); // todo: conjungate verb via webservice?
    		
    		words.push(tweetflow.didOperation.toLowerCase());
    	}
    	
    	words.push("the"); // really use article? 
    	
    	words.push(tweetflow.service);
    	
    	
    	if(tweetflow.output){
    		words.push("which yielded: ");
	    	
	    	words.push(tweetflow.output);
    	}
    }
    
    translateSR = function(){
    	
    	// [(@User, Please) | (Please) ] operation the service: input [if condition]
    	
    	if(tweetflow.user){
    		words.push(tweetflow.user+",");
    		words.push("please");
    	}
    	else{
    		words.push("Please");
    	}
  
    	words.push(tweetflow.operation);
   
    	words.push("the");
    
    	words.push(tweetflow.service+":");
    
    	words.push(tweetflow.input);
    	
    	if(tweetflow.condition){
    		words.push("if");
    		words.push(tweetflow.condition);
    	}
    }
    
    buildSentence = function(){
    	var text="";
    	for (var i=0; i < words.length; i++) {
		  text+=words[i]+" ";
		};
		if(text == ""){
			text = undefined;
		}
	    return text;
    }
    
	if(tweetflow && tweetflow.type){
		if(tweetflow.type == SF || tweetflow.type == LG){
			translateSF();
		}else if(tweetflow.type == SR || tweetflow.type == RT || tweetflow.type == DS){
			translateSR();
		}
		
		// add hashtags in the end
		words=words.concat(tweetflow.hashtags);
	}
	
	return buildSentence();
}